A network that has one or more outputs that are proportional to a reference input is composed of identical structures. All the outputs have varying ratios with respect to the reference input. The linearity of such a network depends on the matching between the identical structures that the network is composed of. One common measure of linearity for this type of network is the Integral Non-Linearity (INL) Error. INL error of any output of the network is defined as the deviation of the actual value of the output from the ideal value of the output. Due to manufacturing tolerances of the identical structures comprised in the network, the linearity of the network may be degraded. One way to improve the linearity of the network is to construct the identical structures as pairs of one fixed element and one adjustable element. When the identical structures are constructed in this way, the adjustable elements can be varied or trimmed according to an algorithm so that the linearity of the network is improved.
A specific, non-limiting example of a possible network of this type is a resistor string network 100 as shown in FIG. 1. Resistor string networks have general utility in a variety of applications including, but not restricted to: Digital-to-Analog Converters; Analog-to-Digital Converters; Programmable Gain Amplifiers; Programmable Attenuators; Programmable Resistors; and more.  The resistor string network 100 as shown in FIG. 1 is designed for an N-bit Digital-to-Analog Converter. Network 100 has 2N identical resistive structures tied in series between REFHI node and REFLO node. The resistive structures in the resistor string network 100 are labeled R1, R2, R3, R4 through R—2N−2, R—2N−1, R—2N. The reference input voltage is applied between REFHI and REFLO nodes. Each of the 2N outputs V0, V1, . . . , V2N−2, V2N−1, has a specific and different ratio to the reference input voltage. For an N-Bit DAC, as N gets larger the number of resistive structures in the network grows exponentially. Due to this exponential growth, achieving good matching between the different resistive structures is difficult. For example, even if one of the resistive structures does not match all the other 2N−1 resistive structures, then almost all the outputs of the network deviate from their ideal value and each will end up with a non-zero Integral Nonlinearity (INL) error. Thus, in order to get low INL errors, this type of network requires that the resistive structures are constructed as pairs of one fixed element and one adjustable element, where the resistance of the adjustable elements can be trimmed and INL errors can be reduced.
FIG. 2 depicts a resistor string network 200, wherein the identical resistive structures 202 are constructed as a parallel combination of one fixed element 203 and one adjustable element 204. It will be apparent to those skilled in the art that the one fixed element 203 may be constructed as a series, parallel or series/parallel combination of one or more fixed units. It will also be apparent to those skilled in the art that the one adjustable element 204 may be constructed as a series, parallel or series/parallel combination of one or more adjustable units. Furthermore pairs of one fixed element and one adjustable element can be constructed as a series, parallel or series/parallel combination of one or more fixed units and one or more adjustable units. Both the adjustable elements and the adjustable units can be either unidirectional or bidirectional. The value of unidirectional adjustable elements can only be either increased (trim-up) or decreased (trim-down) and they are usually constructed using one or more unidirectional adjustable units. On the other hand the value of bidirectional adjustable elements can be both increased (trim-up) and decreased (trim-down). Bidirectional adjustable elements can be constructed using one or more bidirectional adjustable units, one or more unidirectional adjustable units or a combination of one or more bidirectional adjustable units and one or more unidirectional adjustable units. Furthermore both the bidirectional and unidirectional adjustable elements can be either continuously adjustable elements or discretely adjustable elements. Continuously adjustable elements allow the value of the adjustable element to change by any finite amount, while the discretely adjustable elements only allow changes in the value of the adjustable element by discrete steps.
Usually, it is more efficient to design unidirectional (either trim up only or trim down only) trim structures. The adjustable elements 204 shown in FIG. 2 are of the type unidirectional (trim-up) continuously adjustable elements. One algorithm that is used to trim the resistor string network 200 composed of this type of adjustable elements is to first measure all the outputs of the network V0,V1,V2 through V2N−2,V2N−1, determine the resistive structure 202 with the maximum resistance from the measurement data, and then trim up all the other resistive structures 202 to this maximum resistance value. There exist a few problems with the implementation of this algorithm. One challenge is the fact that trims are interactive when the string network 200 is driven with a constant voltage reference source which is the case for the normal operation of the part. In other words, trimming one resistive structure affects all the outputs which makes it very complicated to deduce whether or not the resistive structure is trimmed to the target value.
In order to mitigate the problem discussed with respect to FIG. 2, the resistor string network 300 may be driven by a constant current source instead of a voltage source as is shown in FIG. 3. Using a current source reduces the interaction between trims. However the overall trim procedure still requires multiple passes, which means the trim cannot be completed without making additional output measurements. This is necessary because for continuously adjustable elements one has to measure the output after each trim operation to see if the resistive structure being trimmed has reached the target value. In addition to this, the current sources have by nature high output impedances that may cause long settling times for the outputs. All these effects, undesirably increase trim time.
What is desired, therefore, is a method for trimming a network that can be accomplished with a single pass (in other words with no additional output measurements except for the initial measurements), within a reasonable amount of trim time, and does not suffer from the problems associated with the prior art discussed above.